import { RoleEntity } from '@app/entity/Access/RoleEntity';
import EntityRegistry from '@app/entity/EntityRegistry';
import { ApplicationEntity } from '@app/entity/application/ApplicationEntity';
import { BusinessAttributeEntity } from '@app/entity/businessAttribute/BusinessAttributeEntity';
import { ChartEntity } from '@app/entity/chart/ChartEntity';
import { ContainerEntity } from '@app/entity/container/ContainerEntity';
import { DashboardEntity } from '@app/entity/dashboard/DashboardEntity';
import { DataContractEntity } from '@app/entity/dataContract/DataContractEntity';
import { DataFlowEntity } from '@app/entity/dataFlow/DataFlowEntity';
import { DataJobEntity } from '@app/entity/dataJob/DataJobEntity';
import { DataPlatformEntity } from '@app/entity/dataPlatform/DataPlatformEntity';
import { DataPlatformInstanceEntity } from '@app/entity/dataPlatformInstance/DataPlatformInstanceEntity';
import { DataProcessInstanceEntity } from '@app/entity/dataProcessInstance/DataProcessInstanceEntity';
import { DataProductEntity } from '@app/entity/dataProduct/DataProductEntity';
import { DatasetEntity } from '@app/entity/dataset/DatasetEntity';
import { DomainEntity } from '@app/entity/domain/DomainEntity';
import { ERModelRelationshipEntity } from '@app/entity/ermodelrelationships/ERModelRelationshipEntity';
import GlossaryNodeEntity from '@app/entity/glossaryNode/GlossaryNodeEntity';
import { GlossaryTermEntity } from '@app/entity/glossaryTerm/GlossaryTermEntity';
import { GroupEntity } from '@app/entity/group/Group';
import { MLFeatureEntity } from '@app/entity/mlFeature/MLFeatureEntity';
import { MLFeatureTableEntity } from '@app/entity/mlFeatureTable/MLFeatureTableEntity';
import { MLModelEntity } from '@app/entity/mlModel/MLModelEntity';
import { MLModelGroupEntity } from '@app/entity/mlModelGroup/MLModelGroupEntity';
import { MLPrimaryKeyEntity } from '@app/entity/mlPrimaryKey/MLPrimaryKeyEntity';
import { RestrictedEntity } from '@app/entity/restricted/RestrictedEntity';
import { SchemaFieldPropertiesEntity } from '@app/entity/schemaField/SchemaFieldPropertiesEntity';
import { StructuredPropertyEntity } from '@app/entity/structuredProperty/StructuredPropertyEntity';
import { TagEntity } from '@app/entity/tag/Tag';
import { UserEntity } from '@app/entity/user/User';
import { DocumentEntity } from '@app/entityV2/document/DocumentEntity';

export default function buildEntityRegistry() {
    const registry = new EntityRegistry();
    registry.register(new DatasetEntity());
    registry.register(new DataContractEntity());
    registry.register(new DashboardEntity());
    registry.register(new ChartEntity());
    registry.register(new UserEntity());
    registry.register(new GroupEntity());
    registry.register(new TagEntity());
    registry.register(new DataFlowEntity());
    registry.register(new DataJobEntity());
    registry.register(new GlossaryTermEntity());
    registry.register(new MLFeatureEntity());
    registry.register(new MLPrimaryKeyEntity());
    registry.register(new MLFeatureTableEntity());
    registry.register(new MLModelEntity());
    registry.register(new MLModelGroupEntity());
    registry.register(new DomainEntity());
    registry.register(new DocumentEntity());
    registry.register(new ContainerEntity());
    registry.register(new GlossaryNodeEntity());
    registry.register(new RoleEntity());
    registry.register(new DataPlatformEntity());
    registry.register(new DataProductEntity());
    registry.register(new DataPlatformInstanceEntity());
    registry.register(new ERModelRelationshipEntity());
    registry.register(new RestrictedEntity());
    registry.register(new BusinessAttributeEntity());
    registry.register(new SchemaFieldPropertiesEntity());
    registry.register(new StructuredPropertyEntity());
    registry.register(new DataProcessInstanceEntity());
    registry.register(new ApplicationEntity());
    return registry;
}
